      module mo_lu_solve
      private
      public :: lu_slv
      contains
      subroutine lu_slv01( lu, b )
      use shr_kind_mod, only : r8 => shr_kind_r8
      use chem_mods, only : clscnt4, nzcnt
      implicit none
!-----------------------------------------------------------------------
! ... Dummy args
!-----------------------------------------------------------------------
      real(r8), intent(in) :: lu(:)
      real(r8), intent(inout) :: b(:)
!-----------------------------------------------------------------------
! ... Local variables
!-----------------------------------------------------------------------
!-----------------------------------------------------------------------
! ... solve L * y = b
!-----------------------------------------------------------------------
         b(37) = b(37) - lu(2) * b(1)
         b(48) = b(48) - lu(3) * b(1)
         b(49) = b(49) - lu(5) * b(2)
         b(49) = b(49) - lu(8) * b(3)
         b(7) = b(7) - lu(10) * b(4)
         b(44) = b(44) - lu(11) * b(4)
         b(48) = b(48) - lu(13) * b(5)
         b(35) = b(35) - lu(15) * b(6)
         b(48) = b(48) - lu(16) * b(6)
         b(31) = b(31) - lu(19) * b(7)
         b(39) = b(39) - lu(20) * b(7)
         b(44) = b(44) - lu(21) * b(7)
         b(22) = b(22) - lu(23) * b(8)
         b(33) = b(33) - lu(24) * b(8)
         b(38) = b(38) - lu(25) * b(8)
         b(39) = b(39) - lu(26) * b(8)
         b(40) = b(40) - lu(27) * b(8)
         b(31) = b(31) - lu(29) * b(9)
         b(34) = b(34) - lu(30) * b(9)
         b(37) = b(37) - lu(31) * b(9)
         b(39) = b(39) - lu(32) * b(9)
         b(21) = b(21) - lu(34) * b(10)
         b(31) = b(31) - lu(35) * b(10)
         b(32) = b(32) - lu(36) * b(10)
         b(34) = b(34) - lu(37) * b(10)
         b(39) = b(39) - lu(38) * b(10)
         b(43) = b(43) - lu(39) * b(10)
         b(28) = b(28) - lu(41) * b(11)
         b(32) = b(32) - lu(42) * b(11)
         b(43) = b(43) - lu(43) * b(11)
         b(44) = b(44) - lu(44) * b(11)
         b(46) = b(46) - lu(45) * b(11)
         b(31) = b(31) - lu(48) * b(12)
         b(39) = b(39) - lu(49) * b(12)
         b(44) = b(44) - lu(50) * b(12)
         b(47) = b(47) - lu(51) * b(12)
         b(49) = b(49) - lu(52) * b(12)
         b(33) = b(33) - lu(54) * b(13)
         b(40) = b(40) - lu(55) * b(13)
         b(43) = b(43) - lu(56) * b(13)
         b(44) = b(44) - lu(57) * b(13)
         b(47) = b(47) - lu(58) * b(13)
         b(49) = b(49) - lu(59) * b(13)
         b(15) = b(15) - lu(61) * b(14)
         b(24) = b(24) - lu(62) * b(14)
         b(25) = b(25) - lu(63) * b(14)
         b(27) = b(27) - lu(64) * b(14)
         b(39) = b(39) - lu(65) * b(14)
         b(49) = b(49) - lu(66) * b(14)
         b(24) = b(24) - lu(68) * b(15)
         b(25) = b(25) - lu(69) * b(15)
         b(27) = b(27) - lu(70) * b(15)
         b(39) = b(39) - lu(71) * b(15)
         b(49) = b(49) - lu(72) * b(15)
         b(27) = b(27) - lu(74) * b(16)
         b(38) = b(38) - lu(75) * b(16)
         b(45) = b(45) - lu(76) * b(16)
         b(49) = b(49) - lu(77) * b(16)
         b(22) = b(22) - lu(79) * b(17)
         b(23) = b(23) - lu(80) * b(17)
         b(33) = b(33) - lu(81) * b(17)
         b(35) = b(35) - lu(82) * b(17)
         b(39) = b(39) - lu(83) * b(17)
         b(40) = b(40) - lu(84) * b(17)
         b(41) = b(41) - lu(85) * b(17)
         b(36) = b(36) - lu(87) * b(18)
         b(39) = b(39) - lu(88) * b(18)
         b(43) = b(43) - lu(89) * b(18)
         b(44) = b(44) - lu(90) * b(18)
         b(47) = b(47) - lu(91) * b(18)
         b(48) = b(48) - lu(92) * b(18)
         b(24) = b(24) - lu(96) * b(19)
         b(25) = b(25) - lu(97) * b(19)
         b(26) = b(26) - lu(98) * b(19)
         b(27) = b(27) - lu(99) * b(19)
         b(38) = b(38) - lu(100) * b(19)
         b(39) = b(39) - lu(101) * b(19)
         b(45) = b(45) - lu(102) * b(19)
         b(49) = b(49) - lu(103) * b(19)
         b(35) = b(35) - lu(105) * b(20)
         b(39) = b(39) - lu(106) * b(20)
         b(43) = b(43) - lu(107) * b(20)
         b(44) = b(44) - lu(108) * b(20)
         b(45) = b(45) - lu(109) * b(20)
         b(32) = b(32) - lu(111) * b(21)
         b(34) = b(34) - lu(112) * b(21)
         b(39) = b(39) - lu(113) * b(21)
         b(42) = b(42) - lu(114) * b(21)
         b(43) = b(43) - lu(115) * b(21)
         b(49) = b(49) - lu(116) * b(21)
         b(33) = b(33) - lu(118) * b(22)
         b(40) = b(40) - lu(119) * b(22)
         b(43) = b(43) - lu(120) * b(22)
         b(44) = b(44) - lu(121) * b(22)
         b(35) = b(35) - lu(124) * b(23)
         b(36) = b(36) - lu(125) * b(23)
         b(39) = b(39) - lu(126) * b(23)
         b(41) = b(41) - lu(127) * b(23)
         b(43) = b(43) - lu(128) * b(23)
         b(44) = b(44) - lu(129) * b(23)
         b(48) = b(48) - lu(130) * b(23)
         b(25) = b(25) - lu(132) * b(24)
         b(26) = b(26) - lu(133) * b(24)
         b(27) = b(27) - lu(134) * b(24)
         b(38) = b(38) - lu(135) * b(24)
         b(39) = b(39) - lu(136) * b(24)
         b(45) = b(45) - lu(137) * b(24)
         b(49) = b(49) - lu(138) * b(24)
         b(26) = b(26) - lu(141) * b(25)
         b(27) = b(27) - lu(142) * b(25)
         b(38) = b(38) - lu(143) * b(25)
         b(39) = b(39) - lu(144) * b(25)
         b(45) = b(45) - lu(145) * b(25)
         b(49) = b(49) - lu(146) * b(25)
         b(27) = b(27) - lu(152) * b(26)
         b(38) = b(38) - lu(153) * b(26)
         b(39) = b(39) - lu(154) * b(26)
         b(45) = b(45) - lu(155) * b(26)
         b(49) = b(49) - lu(156) * b(26)
         b(38) = b(38) - lu(163) * b(27)
         b(39) = b(39) - lu(164) * b(27)
         b(40) = b(40) - lu(165) * b(27)
         b(45) = b(45) - lu(166) * b(27)
         b(49) = b(49) - lu(167) * b(27)
         b(32) = b(32) - lu(170) * b(28)
         b(38) = b(38) - lu(171) * b(28)
         b(40) = b(40) - lu(172) * b(28)
         b(43) = b(43) - lu(173) * b(28)
         b(44) = b(44) - lu(174) * b(28)
         b(46) = b(46) - lu(175) * b(28)
         b(47) = b(47) - lu(176) * b(28)
         b(49) = b(49) - lu(177) * b(28)
         b(36) = b(36) - lu(180) * b(29)
         b(37) = b(37) - lu(181) * b(29)
         b(39) = b(39) - lu(182) * b(29)
         b(43) = b(43) - lu(183) * b(29)
         b(44) = b(44) - lu(184) * b(29)
         b(48) = b(48) - lu(185) * b(29)
         b(33) = b(33) - lu(190) * b(30)
         b(36) = b(36) - lu(191) * b(30)
         b(37) = b(37) - lu(192) * b(30)
         b(39) = b(39) - lu(193) * b(30)
         b(40) = b(40) - lu(194) * b(30)
         b(43) = b(43) - lu(195) * b(30)
         b(44) = b(44) - lu(196) * b(30)
         b(48) = b(48) - lu(197) * b(30)
         b(34) = b(34) - lu(200) * b(31)
         b(39) = b(39) - lu(201) * b(31)
         b(43) = b(43) - lu(202) * b(31)
         b(44) = b(44) - lu(203) * b(31)
         b(47) = b(47) - lu(204) * b(31)
         b(49) = b(49) - lu(205) * b(31)
         b(39) = b(39) - lu(207) * b(32)
         b(42) = b(42) - lu(208) * b(32)
         b(43) = b(43) - lu(209) * b(32)
         b(44) = b(44) - lu(210) * b(32)
         b(47) = b(47) - lu(211) * b(32)
         b(49) = b(49) - lu(212) * b(32)
         b(38) = b(38) - lu(216) * b(33)
         b(39) = b(39) - lu(217) * b(33)
         b(40) = b(40) - lu(218) * b(33)
         b(43) = b(43) - lu(219) * b(33)
         b(44) = b(44) - lu(220) * b(33)
         b(46) = b(46) - lu(221) * b(33)
         b(47) = b(47) - lu(222) * b(33)
         b(49) = b(49) - lu(223) * b(33)
         b(35) = b(35) - lu(229) * b(34)
         b(37) = b(37) - lu(230) * b(34)
         b(38) = b(38) - lu(231) * b(34)
         b(39) = b(39) - lu(232) * b(34)
         b(40) = b(40) - lu(233) * b(34)
         b(41) = b(41) - lu(234) * b(34)
         b(42) = b(42) - lu(235) * b(34)
         b(43) = b(43) - lu(236) * b(34)
         b(44) = b(44) - lu(237) * b(34)
         b(47) = b(47) - lu(238) * b(34)
         b(48) = b(48) - lu(239) * b(34)
         b(49) = b(49) - lu(240) * b(34)
         b(39) = b(39) - lu(243) * b(35)
         b(41) = b(41) - lu(244) * b(35)
         b(42) = b(42) - lu(245) * b(35)
         b(43) = b(43) - lu(246) * b(35)
         b(44) = b(44) - lu(247) * b(35)
         b(45) = b(45) - lu(248) * b(35)
         b(46) = b(46) - lu(249) * b(35)
         b(47) = b(47) - lu(250) * b(35)
         b(49) = b(49) - lu(251) * b(35)
         b(37) = b(37) - lu(262) * b(36)
         b(38) = b(38) - lu(263) * b(36)
         b(39) = b(39) - lu(264) * b(36)
         b(40) = b(40) - lu(265) * b(36)
         b(41) = b(41) - lu(266) * b(36)
         b(42) = b(42) - lu(267) * b(36)
         b(43) = b(43) - lu(268) * b(36)
         b(44) = b(44) - lu(269) * b(36)
         b(45) = b(45) - lu(270) * b(36)
         b(46) = b(46) - lu(271) * b(36)
         b(47) = b(47) - lu(272) * b(36)
         b(48) = b(48) - lu(273) * b(36)
         b(49) = b(49) - lu(274) * b(36)
         b(38) = b(38) - lu(287) * b(37)
         b(39) = b(39) - lu(288) * b(37)
         b(40) = b(40) - lu(289) * b(37)
         b(41) = b(41) - lu(290) * b(37)
         b(42) = b(42) - lu(291) * b(37)
         b(43) = b(43) - lu(292) * b(37)
         b(44) = b(44) - lu(293) * b(37)
         b(45) = b(45) - lu(294) * b(37)
         b(46) = b(46) - lu(295) * b(37)
         b(47) = b(47) - lu(296) * b(37)
         b(48) = b(48) - lu(297) * b(37)
         b(49) = b(49) - lu(298) * b(37)
      end subroutine lu_slv01
      subroutine lu_slv02( lu, b )
      use shr_kind_mod, only : r8 => shr_kind_r8
      use chem_mods, only : clscnt4, nzcnt
      implicit none
!-----------------------------------------------------------------------
! ... Dummy args
!-----------------------------------------------------------------------
      real(r8), intent(in) :: lu(:)
      real(r8), intent(inout) :: b(:)
!-----------------------------------------------------------------------
! ... Local variables
!-----------------------------------------------------------------------
!-----------------------------------------------------------------------
! ... solve L * y = b
!-----------------------------------------------------------------------
         b(39) = b(39) - lu(309) * b(38)
         b(40) = b(40) - lu(310) * b(38)
         b(41) = b(41) - lu(311) * b(38)
         b(42) = b(42) - lu(312) * b(38)
         b(43) = b(43) - lu(313) * b(38)
         b(44) = b(44) - lu(314) * b(38)
         b(45) = b(45) - lu(315) * b(38)
         b(46) = b(46) - lu(316) * b(38)
         b(47) = b(47) - lu(317) * b(38)
         b(48) = b(48) - lu(318) * b(38)
         b(49) = b(49) - lu(319) * b(38)
         b(40) = b(40) - lu(348) * b(39)
         b(41) = b(41) - lu(349) * b(39)
         b(42) = b(42) - lu(350) * b(39)
         b(43) = b(43) - lu(351) * b(39)
         b(44) = b(44) - lu(352) * b(39)
         b(45) = b(45) - lu(353) * b(39)
         b(46) = b(46) - lu(354) * b(39)
         b(47) = b(47) - lu(355) * b(39)
         b(48) = b(48) - lu(356) * b(39)
         b(49) = b(49) - lu(357) * b(39)
         b(41) = b(41) - lu(374) * b(40)
         b(42) = b(42) - lu(375) * b(40)
         b(43) = b(43) - lu(376) * b(40)
         b(44) = b(44) - lu(377) * b(40)
         b(45) = b(45) - lu(378) * b(40)
         b(46) = b(46) - lu(379) * b(40)
         b(47) = b(47) - lu(380) * b(40)
         b(48) = b(48) - lu(381) * b(40)
         b(49) = b(49) - lu(382) * b(40)
         b(42) = b(42) - lu(398) * b(41)
         b(43) = b(43) - lu(399) * b(41)
         b(44) = b(44) - lu(400) * b(41)
         b(45) = b(45) - lu(401) * b(41)
         b(46) = b(46) - lu(402) * b(41)
         b(47) = b(47) - lu(403) * b(41)
         b(48) = b(48) - lu(404) * b(41)
         b(49) = b(49) - lu(405) * b(41)
         b(43) = b(43) - lu(420) * b(42)
         b(44) = b(44) - lu(421) * b(42)
         b(45) = b(45) - lu(422) * b(42)
         b(46) = b(46) - lu(423) * b(42)
         b(47) = b(47) - lu(424) * b(42)
         b(48) = b(48) - lu(425) * b(42)
         b(49) = b(49) - lu(426) * b(42)
         b(44) = b(44) - lu(451) * b(43)
         b(45) = b(45) - lu(452) * b(43)
         b(46) = b(46) - lu(453) * b(43)
         b(47) = b(47) - lu(454) * b(43)
         b(48) = b(48) - lu(455) * b(43)
         b(49) = b(49) - lu(456) * b(43)
         b(45) = b(45) - lu(471) * b(44)
         b(46) = b(46) - lu(472) * b(44)
         b(47) = b(47) - lu(473) * b(44)
         b(48) = b(48) - lu(474) * b(44)
         b(49) = b(49) - lu(475) * b(44)
         b(46) = b(46) - lu(491) * b(45)
         b(47) = b(47) - lu(492) * b(45)
         b(48) = b(48) - lu(493) * b(45)
         b(49) = b(49) - lu(494) * b(45)
         b(47) = b(47) - lu(511) * b(46)
         b(48) = b(48) - lu(512) * b(46)
         b(49) = b(49) - lu(513) * b(46)
         b(48) = b(48) - lu(536) * b(47)
         b(49) = b(49) - lu(537) * b(47)
         b(49) = b(49) - lu(558) * b(48)
      end subroutine lu_slv02
      subroutine lu_slv03( lu, b )
      use shr_kind_mod, only : r8 => shr_kind_r8
      use chem_mods, only : clscnt4, nzcnt
      implicit none
!-----------------------------------------------------------------------
! ... Dummy args
!-----------------------------------------------------------------------
      real(r8), intent(in) :: lu(:)
      real(r8), intent(inout) :: b(:)
!-----------------------------------------------------------------------
! ... Local variables
!-----------------------------------------------------------------------
!-----------------------------------------------------------------------
! ... solve L * y = b
!-----------------------------------------------------------------------
!-----------------------------------------------------------------------
! ... Solve U * x = y
!-----------------------------------------------------------------------
         b(49) = b(49) * lu(588)
         b(48) = b(48) - lu(587) * b(49)
         b(47) = b(47) - lu(586) * b(49)
         b(46) = b(46) - lu(585) * b(49)
         b(45) = b(45) - lu(584) * b(49)
         b(44) = b(44) - lu(583) * b(49)
         b(43) = b(43) - lu(582) * b(49)
         b(42) = b(42) - lu(581) * b(49)
         b(41) = b(41) - lu(580) * b(49)
         b(40) = b(40) - lu(579) * b(49)
         b(39) = b(39) - lu(578) * b(49)
         b(38) = b(38) - lu(577) * b(49)
         b(37) = b(37) - lu(576) * b(49)
         b(35) = b(35) - lu(575) * b(49)
         b(34) = b(34) - lu(574) * b(49)
         b(32) = b(32) - lu(573) * b(49)
         b(31) = b(31) - lu(572) * b(49)
         b(27) = b(27) - lu(571) * b(49)
         b(26) = b(26) - lu(570) * b(49)
         b(25) = b(25) - lu(569) * b(49)
         b(24) = b(24) - lu(568) * b(49)
         b(21) = b(21) - lu(567) * b(49)
         b(19) = b(19) - lu(566) * b(49)
         b(16) = b(16) - lu(565) * b(49)
         b(15) = b(15) - lu(564) * b(49)
         b(14) = b(14) - lu(563) * b(49)
         b(12) = b(12) - lu(562) * b(49)
         b(7) = b(7) - lu(561) * b(49)
         b(3) = b(3) - lu(560) * b(49)
         b(2) = b(2) - lu(559) * b(49)
         b(48) = b(48) * lu(557)
         b(47) = b(47) - lu(556) * b(48)
         b(46) = b(46) - lu(555) * b(48)
         b(45) = b(45) - lu(554) * b(48)
         b(44) = b(44) - lu(553) * b(48)
         b(43) = b(43) - lu(552) * b(48)
         b(42) = b(42) - lu(551) * b(48)
         b(41) = b(41) - lu(550) * b(48)
         b(40) = b(40) - lu(549) * b(48)
         b(39) = b(39) - lu(548) * b(48)
         b(38) = b(38) - lu(547) * b(48)
         b(37) = b(37) - lu(546) * b(48)
         b(36) = b(36) - lu(545) * b(48)
         b(33) = b(33) - lu(544) * b(48)
         b(32) = b(32) - lu(543) * b(48)
         b(30) = b(30) - lu(542) * b(48)
         b(29) = b(29) - lu(541) * b(48)
         b(28) = b(28) - lu(540) * b(48)
         b(18) = b(18) - lu(539) * b(48)
         b(5) = b(5) - lu(538) * b(48)
         b(47) = b(47) * lu(535)
         b(46) = b(46) - lu(534) * b(47)
         b(45) = b(45) - lu(533) * b(47)
         b(44) = b(44) - lu(532) * b(47)
         b(43) = b(43) - lu(531) * b(47)
         b(42) = b(42) - lu(530) * b(47)
         b(41) = b(41) - lu(529) * b(47)
         b(40) = b(40) - lu(528) * b(47)
         b(39) = b(39) - lu(527) * b(47)
         b(38) = b(38) - lu(526) * b(47)
         b(37) = b(37) - lu(525) * b(47)
         b(36) = b(36) - lu(524) * b(47)
         b(35) = b(35) - lu(523) * b(47)
         b(33) = b(33) - lu(522) * b(47)
         b(32) = b(32) - lu(521) * b(47)
         b(29) = b(29) - lu(520) * b(47)
         b(28) = b(28) - lu(519) * b(47)
         b(23) = b(23) - lu(518) * b(47)
         b(20) = b(20) - lu(517) * b(47)
         b(18) = b(18) - lu(516) * b(47)
         b(13) = b(13) - lu(515) * b(47)
         b(11) = b(11) - lu(514) * b(47)
         b(46) = b(46) * lu(510)
         b(45) = b(45) - lu(509) * b(46)
         b(44) = b(44) - lu(508) * b(46)
         b(43) = b(43) - lu(507) * b(46)
         b(42) = b(42) - lu(506) * b(46)
         b(41) = b(41) - lu(505) * b(46)
         b(40) = b(40) - lu(504) * b(46)
         b(39) = b(39) - lu(503) * b(46)
         b(38) = b(38) - lu(502) * b(46)
         b(37) = b(37) - lu(501) * b(46)
         b(36) = b(36) - lu(500) * b(46)
         b(35) = b(35) - lu(499) * b(46)
         b(33) = b(33) - lu(498) * b(46)
         b(32) = b(32) - lu(497) * b(46)
         b(22) = b(22) - lu(496) * b(46)
         b(20) = b(20) - lu(495) * b(46)
         b(45) = b(45) * lu(490)
         b(44) = b(44) - lu(489) * b(45)
         b(43) = b(43) - lu(488) * b(45)
         b(42) = b(42) - lu(487) * b(45)
         b(41) = b(41) - lu(486) * b(45)
         b(40) = b(40) - lu(485) * b(45)
         b(39) = b(39) - lu(484) * b(45)
         b(38) = b(38) - lu(483) * b(45)
         b(37) = b(37) - lu(482) * b(45)
         b(36) = b(36) - lu(481) * b(45)
         b(35) = b(35) - lu(480) * b(45)
         b(32) = b(32) - lu(479) * b(45)
         b(28) = b(28) - lu(478) * b(45)
         b(20) = b(20) - lu(477) * b(45)
         b(3) = b(3) - lu(476) * b(45)
         b(44) = b(44) * lu(470)
         b(43) = b(43) - lu(469) * b(44)
         b(42) = b(42) - lu(468) * b(44)
         b(41) = b(41) - lu(467) * b(44)
         b(40) = b(40) - lu(466) * b(44)
         b(39) = b(39) - lu(465) * b(44)
         b(38) = b(38) - lu(464) * b(44)
         b(37) = b(37) - lu(463) * b(44)
         b(35) = b(35) - lu(462) * b(44)
         b(34) = b(34) - lu(461) * b(44)
         b(32) = b(32) - lu(460) * b(44)
         b(31) = b(31) - lu(459) * b(44)
         b(7) = b(7) - lu(458) * b(44)
         b(4) = b(4) - lu(457) * b(44)
         b(43) = b(43) * lu(450)
         b(42) = b(42) - lu(449) * b(43)
         b(41) = b(41) - lu(448) * b(43)
         b(40) = b(40) - lu(447) * b(43)
         b(39) = b(39) - lu(446) * b(43)
         b(38) = b(38) - lu(445) * b(43)
         b(37) = b(37) - lu(444) * b(43)
         b(36) = b(36) - lu(443) * b(43)
         b(35) = b(35) - lu(442) * b(43)
         b(34) = b(34) - lu(441) * b(43)
         b(33) = b(33) - lu(440) * b(43)
         b(32) = b(32) - lu(439) * b(43)
         b(31) = b(31) - lu(438) * b(43)
         b(30) = b(30) - lu(437) * b(43)
         b(29) = b(29) - lu(436) * b(43)
         b(28) = b(28) - lu(435) * b(43)
         b(22) = b(22) - lu(434) * b(43)
         b(21) = b(21) - lu(433) * b(43)
         b(20) = b(20) - lu(432) * b(43)
         b(18) = b(18) - lu(431) * b(43)
         b(13) = b(13) - lu(430) * b(43)
         b(12) = b(12) - lu(429) * b(43)
         b(11) = b(11) - lu(428) * b(43)
         b(10) = b(10) - lu(427) * b(43)
         b(42) = b(42) * lu(419)
         b(41) = b(41) - lu(418) * b(42)
         b(40) = b(40) - lu(417) * b(42)
         b(39) = b(39) - lu(416) * b(42)
         b(38) = b(38) - lu(415) * b(42)
         b(37) = b(37) - lu(414) * b(42)
         b(35) = b(35) - lu(413) * b(42)
         b(34) = b(34) - lu(412) * b(42)
         b(33) = b(33) - lu(411) * b(42)
         b(32) = b(32) - lu(410) * b(42)
         b(31) = b(31) - lu(409) * b(42)
         b(21) = b(21) - lu(408) * b(42)
         b(3) = b(3) - lu(407) * b(42)
         b(2) = b(2) - lu(406) * b(42)
         b(41) = b(41) * lu(397)
         b(40) = b(40) - lu(396) * b(41)
         b(39) = b(39) - lu(395) * b(41)
         b(38) = b(38) - lu(394) * b(41)
         b(37) = b(37) - lu(393) * b(41)
         b(36) = b(36) - lu(392) * b(41)
         b(35) = b(35) - lu(391) * b(41)
         b(34) = b(34) - lu(390) * b(41)
         b(33) = b(33) - lu(389) * b(41)
         b(31) = b(31) - lu(388) * b(41)
         b(23) = b(23) - lu(387) * b(41)
         b(22) = b(22) - lu(386) * b(41)
         b(17) = b(17) - lu(385) * b(41)
         b(9) = b(9) - lu(384) * b(41)
         b(6) = b(6) - lu(383) * b(41)
         b(40) = b(40) * lu(373)
         b(39) = b(39) - lu(372) * b(40)
         b(38) = b(38) - lu(371) * b(40)
         b(37) = b(37) - lu(370) * b(40)
         b(36) = b(36) - lu(369) * b(40)
         b(35) = b(35) - lu(368) * b(40)
         b(34) = b(34) - lu(367) * b(40)
         b(33) = b(33) - lu(366) * b(40)
         b(31) = b(31) - lu(365) * b(40)
         b(30) = b(30) - lu(364) * b(40)
         b(27) = b(27) - lu(363) * b(40)
         b(23) = b(23) - lu(362) * b(40)
         b(22) = b(22) - lu(361) * b(40)
         b(17) = b(17) - lu(360) * b(40)
         b(13) = b(13) - lu(359) * b(40)
         b(8) = b(8) - lu(358) * b(40)
         b(39) = b(39) * lu(347)
         b(38) = b(38) - lu(346) * b(39)
         b(37) = b(37) - lu(345) * b(39)
         b(36) = b(36) - lu(344) * b(39)
         b(35) = b(35) - lu(343) * b(39)
         b(34) = b(34) - lu(342) * b(39)
         b(33) = b(33) - lu(341) * b(39)
         b(32) = b(32) - lu(340) * b(39)
         b(31) = b(31) - lu(339) * b(39)
         b(30) = b(30) - lu(338) * b(39)
         b(29) = b(29) - lu(337) * b(39)
         b(27) = b(27) - lu(336) * b(39)
         b(26) = b(26) - lu(335) * b(39)
         b(25) = b(25) - lu(334) * b(39)
         b(24) = b(24) - lu(333) * b(39)
         b(23) = b(23) - lu(332) * b(39)
         b(22) = b(22) - lu(331) * b(39)
         b(21) = b(21) - lu(330) * b(39)
         b(20) = b(20) - lu(329) * b(39)
         b(19) = b(19) - lu(328) * b(39)
         b(18) = b(18) - lu(327) * b(39)
         b(17) = b(17) - lu(326) * b(39)
         b(16) = b(16) - lu(325) * b(39)
         b(15) = b(15) - lu(324) * b(39)
         b(14) = b(14) - lu(323) * b(39)
         b(10) = b(10) - lu(322) * b(39)
         b(3) = b(3) - lu(321) * b(39)
         b(2) = b(2) - lu(320) * b(39)
      end subroutine lu_slv03
      subroutine lu_slv04( lu, b )
      use shr_kind_mod, only : r8 => shr_kind_r8
      use chem_mods, only : clscnt4, nzcnt
      implicit none
!-----------------------------------------------------------------------
! ... Dummy args
!-----------------------------------------------------------------------
      real(r8), intent(in) :: lu(:)
      real(r8), intent(inout) :: b(:)
!-----------------------------------------------------------------------
! ... Local variables
!-----------------------------------------------------------------------
!-----------------------------------------------------------------------
! ... solve L * y = b
!-----------------------------------------------------------------------
         b(38) = b(38) * lu(308)
         b(37) = b(37) - lu(307) * b(38)
         b(35) = b(35) - lu(306) * b(38)
         b(33) = b(33) - lu(305) * b(38)
         b(32) = b(32) - lu(304) * b(38)
         b(28) = b(28) - lu(303) * b(38)
         b(27) = b(27) - lu(302) * b(38)
         b(26) = b(26) - lu(301) * b(38)
         b(25) = b(25) - lu(300) * b(38)
         b(24) = b(24) - lu(299) * b(38)
         b(37) = b(37) * lu(286)
         b(36) = b(36) - lu(285) * b(37)
         b(35) = b(35) - lu(284) * b(37)
         b(34) = b(34) - lu(283) * b(37)
         b(33) = b(33) - lu(282) * b(37)
         b(31) = b(31) - lu(281) * b(37)
         b(30) = b(30) - lu(280) * b(37)
         b(29) = b(29) - lu(279) * b(37)
         b(9) = b(9) - lu(278) * b(37)
         b(6) = b(6) - lu(277) * b(37)
         b(5) = b(5) - lu(276) * b(37)
         b(1) = b(1) - lu(275) * b(37)
         b(36) = b(36) * lu(261)
         b(35) = b(35) - lu(260) * b(36)
         b(33) = b(33) - lu(259) * b(36)
         b(32) = b(32) - lu(258) * b(36)
         b(30) = b(30) - lu(257) * b(36)
         b(29) = b(29) - lu(256) * b(36)
         b(23) = b(23) - lu(255) * b(36)
         b(22) = b(22) - lu(254) * b(36)
         b(6) = b(6) - lu(253) * b(36)
         b(5) = b(5) - lu(252) * b(36)
         b(35) = b(35) * lu(242)
         b(20) = b(20) - lu(241) * b(35)
         b(34) = b(34) * lu(228)
         b(32) = b(32) - lu(227) * b(34)
         b(31) = b(31) - lu(226) * b(34)
         b(21) = b(21) - lu(225) * b(34)
         b(9) = b(9) - lu(224) * b(34)
         b(33) = b(33) * lu(215)
         b(22) = b(22) - lu(214) * b(33)
         b(8) = b(8) - lu(213) * b(33)
         b(32) = b(32) * lu(206)
         b(31) = b(31) * lu(199)
         b(12) = b(12) - lu(198) * b(31)
         b(30) = b(30) * lu(189)
         b(29) = b(29) - lu(188) * b(30)
         b(22) = b(22) - lu(187) * b(30)
         b(5) = b(5) - lu(186) * b(30)
         b(29) = b(29) * lu(179)
         b(5) = b(5) - lu(178) * b(29)
         b(28) = b(28) * lu(169)
         b(11) = b(11) - lu(168) * b(28)
         b(27) = b(27) * lu(162)
         b(26) = b(26) - lu(161) * b(27)
         b(25) = b(25) - lu(160) * b(27)
         b(24) = b(24) - lu(159) * b(27)
         b(15) = b(15) - lu(158) * b(27)
         b(14) = b(14) - lu(157) * b(27)
         b(26) = b(26) * lu(151)
         b(25) = b(25) - lu(150) * b(26)
         b(24) = b(24) - lu(149) * b(26)
         b(19) = b(19) - lu(148) * b(26)
         b(16) = b(16) - lu(147) * b(26)
         b(25) = b(25) * lu(140)
         b(16) = b(16) - lu(139) * b(25)
         b(24) = b(24) * lu(131)
         b(23) = b(23) * lu(123)
         b(6) = b(6) - lu(122) * b(23)
         b(22) = b(22) * lu(117)
         b(21) = b(21) * lu(110)
         b(20) = b(20) * lu(104)
         b(19) = b(19) * lu(95)
         b(16) = b(16) - lu(94) * b(19)
         b(15) = b(15) - lu(93) * b(19)
         b(18) = b(18) * lu(86)
         b(17) = b(17) * lu(78)
         b(16) = b(16) * lu(73)
         b(15) = b(15) * lu(67)
         b(14) = b(14) * lu(60)
         b(13) = b(13) * lu(53)
         b(12) = b(12) * lu(47)
         b(7) = b(7) - lu(46) * b(12)
         b(11) = b(11) * lu(40)
         b(10) = b(10) * lu(33)
         b(9) = b(9) * lu(28)
         b(8) = b(8) * lu(22)
         b(7) = b(7) * lu(18)
         b(4) = b(4) - lu(17) * b(7)
         b(6) = b(6) * lu(14)
         b(5) = b(5) * lu(12)
         b(4) = b(4) * lu(9)
         b(3) = b(3) * lu(7)
         b(2) = b(2) - lu(6) * b(3)
         b(2) = b(2) * lu(4)
         b(1) = b(1) * lu(1)
      end subroutine lu_slv04
      subroutine lu_slv( lu, b )
      use shr_kind_mod, only : r8 => shr_kind_r8
      use chem_mods, only : clscnt4, nzcnt
      implicit none
!-----------------------------------------------------------------------
! ... Dummy args
!-----------------------------------------------------------------------
      real(r8), intent(in) :: lu(:)
      real(r8), intent(inout) :: b(:)
      call lu_slv01( lu, b )
      call lu_slv02( lu, b )
      call lu_slv03( lu, b )
      call lu_slv04( lu, b )
      end subroutine lu_slv
      end module mo_lu_solve
